package cn.harry.modular.achievement.domain;

import cn.harry.common.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.SqlCondition;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 教学奖励表
 *
 * @TableName achievement_teaching_rewards
 */
@EqualsAndHashCode(callSuper = true)
@TableName(value = "achievement_teaching_rewards")
@Data
public class AchievementTeachingRewards extends BaseEntity {

    /**
     * 封面
     */
    @Schema(description = "封面")
    private String cover;

    /**
     * 用户ID
     */
    @Schema(description = "用户ID")
    private Long userId;
    /**
     * 奖励名称
     */
    @TableField(condition = SqlCondition.LIKE)
    @Schema(description = "奖励名称")
    private String rewardName;

    /**
     * 奖励类别
     */
    @Schema(description = "奖励类别")
    private String rewardCategory;

    /**
     * 颁发单位
     */
    @Schema(description = "颁发单位")
    private String awardingUnit;

    /**
     * 获得日期
     */
    @Schema(description = "获得日期")
    private String awardDate;

    /**
     * 奖励等级
     */
    @Schema(description = "奖励等级")
    private String rewardLevel;

    /**
     * 项目/课程名称
     */
    @Schema(description = "项目/课程名称")
    private String projectCourseName;

    /**
     * 奖励内容/描述
     */
    @Schema(description = "奖励内容/描述")
    private String rewardDescription;

    /**
     * 奖励证书编号
     */
    @Schema(description = "奖励证书编号")
    @TableField(condition = SqlCondition.LIKE)
    private String rewardCertificateNumber;

    /**
     * 相关证明材料
     */
    @Schema(description = "相关证明材料")
    private String relatedProofMaterials;
    /**
     * 下载次数
     */
    @Schema(description = "下载次数")
    private Integer downloadCount;

    /**
     * 状态 0 待审核 1 已审核 2 审核拒绝
     */
    @Schema(description = "状态 0 待审核 1 已审核 2 审核拒绝")
    private String state;

    /**
     * 文件内容
     */
    @Schema(description = "文件内容")
    private String content;
}